package cn.wonderland.resthome.service.impl;

import cn.wonderland.basic.mapper.BaseMapper;
import cn.wonderland.basic.util.BussinessException;
import cn.wonderland.resthome.domain.Bed;
import cn.wonderland.resthome.domain.Nurse;
import cn.wonderland.resthome.mapper.BedMapper;
import cn.wonderland.resthome.service.IBedService;
import cn.wonderland.basic.service.impl.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

import static cn.wonderland.resthome.util.GenerateId.generateId;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author wonderland
 * @since 2023-05-01
 */
@Service
public class BedServiceImpl extends BaseServiceImpl<Bed> implements IBedService {

    @Autowired
    private BedMapper bedMapper;

    @Override
    public void add(Bed bed) {
        // 生成8位护床位编号
        String bedNumber = generateId();
        // 查找当前床位编号是否存在
        Integer haveNumber =  bedMapper.findByBedNumber(bedNumber);
        // 判断编号是否已存在
        if (haveNumber != null || haveNumber != 0) {
            bedNumber = generateId(); // 重新生成编号
        }
        // 查找现在有多少个床位 ---- 最多存在 20个床位
        Integer count = bedMapper.getBedCount();
        if (count >= 20){
            throw new BussinessException("很抱歉！最多存在20个床位！");
        }
        // 设置护工编号
        bed.setBedNumber(bedNumber);
        // 设置护工创建时间
        bed.setCreateTime(new Date());
        // 添加到数据库
        bedMapper.add(bed);
    }

    @Override
    public List<Bed> forOldMan() {
        return bedMapper.forOldMan();
    }
}
